package com.ztgf.sys.service;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.ztgf.sys.common.config.YmlConfig;
import com.ztgf.sys.mapper.SysDictMapper;
import com.ztgf.sys.models.bo.SysDictSaveBO;
import com.ztgf.sys.models.dto.SysDictDTO;
import com.ztgf.sys.models.enums.SYSCodeEnum;
import com.ztgf.sys.models.service.ISysDictService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.BeanUtils;

import javax.annotation.Resource;
import java.util.List;


/**
 * 数据字典表控制器
 *
 * @author mxli
 * @Date 2020-05-27 00:03:38
 */
@DubboService
public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDictDTO> implements ISysDictService{

    @Resource
    private YmlConfig ymlConfig;

    @Override
    public boolean add(SysDictSaveBO saveBO) {
        SysDictDTO dto = new SysDictDTO();
        BeanUtils.copyProperties(saveBO,dto);
        Long id = ymlConfig.getPkId();
        dto.setId(id);
        return this.insert(dto);
    }

    /**
     * 获取商家的角色权限
     * @return
     */
    @Override
    public String getManagerValue(){
        SysDictDTO sysDictDTO = getByName(SYSCodeEnum.CONFIG_CODE_MANAGER.getMsg());
        if(null == sysDictDTO){
            throw new RuntimeException("系统异常，商家角色不存在");
        }
        return sysDictDTO.getValue();
    }

    /**
     * 根据名字查询
     * @param name 名称
     * @return
     */
    @Override
    public SysDictDTO getByName(String name){
        Wrapper<SysDictDTO> wrapper = new EntityWrapper<>();
        wrapper.eq("name",name);
        return selectOne(wrapper);
    }

    @Override
    public List<SysDictDTO> queryByName(String name) {
        Wrapper<SysDictDTO> wrapper = new EntityWrapper<>();
        wrapper.eq("name",name);
        return selectList(wrapper);
    }
}
